package com.shsxt.crm.service.impl;

import java.util.Iterator;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.shsxt.common.util.StringUtil;
import com.shsxt.crm.dao.YgSystemMenuModelDao;
import com.shsxt.crm.model.YgSystemMenuModel;
import com.shsxt.crm.service.ISystemMenuModeSerivce;

@Service
public class SystemMenuModeSerivceImpl implements ISystemMenuModeSerivce {

	@Autowired
	private YgSystemMenuModelDao ygSystemMenuModelDao;

	/**
	 * 查询系统菜单 步骤 ： 1、 获取 系统菜单 ---》 optValue 2、 指定角色的 权限制 3、
	 * 
	 */
	@Override
	public List<YgSystemMenuModel> querySystemMenu(String rid) {
		// 1. 模块 操作值
		List<YgSystemMenuModel> menu = ygSystemMenuModelDao.querySystemMenu();
		// 2. 获取角色 权限制
		if (StringUtil.isNotEmpty(rid)) {
			List<String> acl = ygSystemMenuModelDao.queryRoleAclValueByRid(rid);
			setMenuNodeChecked(menu, acl);
		}
		return menu;
	}

	/**
	 * 设置 菜单节点 是否默认选中
	 * 
	 * @param menu
	 */
	private void setMenuNodeChecked(List<YgSystemMenuModel> menu, List<String> acl) {
		// 3. 判断用户已经拥有哪些权限值
		Iterator<YgSystemMenuModel> itor = menu.iterator();
		while (itor.hasNext()) {
			YgSystemMenuModel model = itor.next();
			if (acl.contains(model.getOptValue())) { // 用户拥有该模块的操作权限值
				model.setChecked(true);
			}
		}
	}
	
	@Override
	public YgSystemMenuModel queryMenuModelByMid (Integer mid) {
		return ygSystemMenuModelDao.queryMenuModelByMid(mid);
	}
	
	
}